package com.qf.boot220302.service;



import com.qf.boot220302.entity.User;
import com.qf.boot220302.ex.UserException;
import com.qf.boot220302.vo.TableVo;
import com.qf.boot220302.vo.UserRegistVo;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Date;

public interface UserService {



    /**
     * 用户登录功能，判断用户名密码是否正确
     * @param username
     * @param password
     * @return 返回的user对象不为空，代表登录成功；如果user为空，代表登录失败
     */
    User login(String username, String password);
    /**
     * 注册用户
     * 1. 需要把 userRegistVo 中的用户的头像文件保存到指定目录
     * 2. 把用户信息落库
     * @param userRegistVo
     */
    void registUser(UserRegistVo userRegistVo) throws UserException, IOException;

    /**
     * 分页查询
     * @param page
     * @param limit
     * @param username
     * @param sex
     * @param birthday
     * @return
     */
    TableVo<User> getAllUsersByPageHelper(Integer page, Integer limit, String username, String sex, Date birthday);

    /**
     * 添加
     * @param user
     * @throws UserException
     */
    void addUser(User user) throws UserException;

    /**
     * 修改
     * @param user
     */
    void updateUserById(User user) throws UserException;

    /**
     * 删除
     * @param ids
     */
    void delUserByIds(String[] ids);

    /**
     * 批量上传
     * @param file
     */
    void importUser(MultipartFile file) throws IOException;

    String readUser();

    TableVo<User> getUserByPage(Integer page, Integer limit);
}
